package org.krams.tutorial.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Finance implements EntryPoint {
    /**
     * The message displayed to the user when the server cannot be reached or
     * returns an error.
     */
    private static final String SERVER_ERROR = "An error occurred while "
            + "attempting to contact the server. Please check your network "
            + "connection and try again.";

    /**
     * Create a remote service proxy to talk to the server-side Greeting service.
     */
    private final GreetingServiceAsync greetingService = GWT.create(GreetingService.class);

    private final Messages messages = GWT.create(Messages.class);

    private String balance;
    Button totalMoneyButton;

    /**
     * This is the entry point method.
     */
    public void onModuleLoad() {
        totalMoneyButton = new Button("Total");
        RootPanel.get().add(totalMoneyButton);
        totalMoneyButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent clickEvent) {
                getBalanceFromServer();
            }
        });


    }
    private void getBalanceFromServer() {
        greetingService.loadBalance(new AsyncCallback<Double>() {
            public void onFailure(Throwable caught) {
                Window.alert("faile");
            }

            @Override
            public void onSuccess(Double result) {
                balance = "" + result;
                totalMoneyButton.setText(balance);
            }
        });
    }

}
